// import {tag} from './questionTag'
import utils from '../../utils/index'
const baseURL = process.env.BASE_API

export default {

  /** 4.获取指定关卡的所有题目信息
   * 请求方法：GET
   * @param data请求数据，类型Object，包括以下三个字段
   * {
   *     subject:科目
   *     grade：年级
   *     barrierLevel:关卡号
   * }
   * 返回一个数组，每个元素包括以下6个字段
   * {id,题干，选项ABCD，答案}
   */
  getQuestion (subject, grade, barrierLevel, setQuestion) {
    wx.showLoading({title: '加载中...', mask: true})
    wx.request({
      url: baseURL + '/barrier/getQuestion',
      method: 'GET',
      data: {
        degree: barrierLevel,
        grade,
        subject
      },
      success: res => {
        if (res.statusCode === 200) {
          if (res.data.code === 10009) {
            const questionList = res.data.data
            const newList = []
            for (let i = 0; i < questionList.length; i++) {
              const id = questionList[i].topicId
              const content = questionList[i].topicContent
              const options = []
              for (let j = 0; j < questionList[i].options.length; j++) {
                options[j] = questionList[i].options[j].trim()
              }
              const rightAnswer = questionList[i].answers[0].trim()
              newList[i] = {id, content, options, rightAnswer}
            }
            setQuestion(newList)
          } else {
            utils.showException(res.data.msg)
          }
        } else {
          utils.showException('获取不到题目')
        }
      },
      fail: () => utils.showError(),
      complete: () => wx.hideLoading()
    })
  },
  /**
   * 增加答题结果，更新用户积分和关卡
   * 请求方法：POST
   * @param openid
   * @param subject
   * @param grade
   * @param answerResult，类型：Array,每个元素包括以下2个字段
   * {
   *    questionId,
   *    result,类型int:0 or 1
   * }
   * 返回barrierLevel:更新后的关卡号,若全对则解锁关卡，
   * 若达到总关卡，即通过所有关卡，则不解锁返回当前关卡
   */
  pushResult (openId, subject, grade, presentBarrierDegree, questionResultList, setNewBarrier, error) {
    wx.showLoading({title: '加载中...', mask: true})
    wx.request({
      url: baseURL + '/user/pushResult',
      method: 'POST',
      data: {openId, grade, subject, presentBarrierDegree, questionResultList},
      success: res => {
        if (res.statusCode === 200) {
          if (res.data.code === 10004) {
            setNewBarrier(res.data.data.latestBarrierDegree)
          } else {
            // utils.showException(res.data.msg)
          }
        } else {
          error()
        }
      },
      fail: error,
      complete: () => wx.hideLoading()
    })
  }
  // /**
  //  * 5.更新用户积分
  //  * 请求方法：POST
  //  * 请求参数
  //  * @param openid
  //  * @param answerInfo 答题结果，类型：Array,每个元素包括以下2个字段
  //  * {
  //  *    questionId,
  //  *    result,类型boolean
  //  * }
  //  *返回changeScore:积分变化量
  //  */
  // updataScore (openid, answerInfo) {
  //
  // },
  // /**
  //  * 7.解锁新关卡
  //  * 请求方法：POST
  //  * 请求参数：3个字段
  //  * @param openid
  //  * @param subject
  //  * @param grade
  //  * 返回barrierLevel:新的关卡号
  //  */
  // unlockBarrier (openid, subject, grade) {
  //
  // }
}
// getQuestion (subject, grade, barrierLevel, setQuestion) {
//   let tagAndCount = getTagAndCount(subject, grade, barrierLevel)
//   let questionQuery = querystring.stringify({
//     questionCount: tagAndCount.count,
//     tagIdLists: tagAndCount.tag
//   })
//   wx.showNavigationBarLoading()
//   wx.request({
//     url: 'http://120.79.248.126/api/question/get-questions?' + questionQuery,
//     method: 'GET',
//     success: res => {
//       if (res.statusCode === 200) {
//         const questionList = res.data
//         let newList = []
//         for (let i = 0; i < questionList.length; i++) {
//           const id = questionList[i].topic.id
//           const content = questionList[i].topic.content
//           const options = []
//           for (let j = 0; j < questionList[i].options.length; j++) {
//             options[j] = questionList[i].options[j].content
//           }
//           newList[i] = {id, content, options, rightAnswer: ''}
//         }
//         setQuestion(newList)
//       } else {
//         utils.showException(res.data.message)
//       }
//     },
//     fail: () => utils.showError(),
//     complete: () => wx.hideNavigationBarLoading()
//   })
// },
// getRightAnswer (topicId, index, total, setRightAnswer) {
//   wx.showNavigationBarLoading()
//   wx.request({
//     url: 'http://120.79.248.126/api/question/get-answer',
//     method: 'GET',
//     data: {
//       topicId
//     },
//     success: res => {
//       if (res.statusCode === 200) {
//         setRightAnswer(res.data[0])
//       } else {
//         utils.showException(res.data.message)
//       }
//     },
//     fail: () => {
//       if (index !== total) {
//         utils.showError()
//       }
//     },
//     complete: () => {
//       if (index === total) {
//         wx.hideNavigationBarLoading()
//       }
//     }
//   })
// },
// function getTagAndCount (subject, grade, barrierLevel) {
//   let content = {
//     count: 0,
//     tag: []
//   }
//   content.tag[0] = tag.questionType.singleChoose
//   if (barrierLevel <= 5) {
//     content.count = barrierLevel + 3
//     content.tag[1] = tag.difficulty.simple
//   } else if (barrierLevel <= 10) {
//     content.count = barrierLevel + 2
//     content.tag[1] = tag.difficulty.middle
//   } else if (barrierLevel <= 15) {
//     content.count = barrierLevel + 1
//     content.tag[1] = tag.difficulty.complex
//   }
//   switch (subject) {
//     case '语文':
//       content.tag[2] = tag.subject.Chinese
//       break
//     case '数学':
//       content.tag[2] = tag.subject.Math
//       break
//     case '英语':
//       content.tag[2] = tag.subject.Englist
//       break
//   }
//   switch (grade) {
//     case '一年级':
//       content.tag[3] = tag.grade.one
//       break
//     case '二年级':
//       content.tag[3] = tag.grade.two
//       break
//     case '三年级':
//       content.tag[3] = tag.grade.three
//       break
//     case '四年级':
//       content.tag[3] = tag.grade.four
//       break
//     case '五年级':
//       content.tag[3] = tag.grade.five
//       break
//     case '六年级':
//       content.tag[3] = tag.grade.six
//       break
//   }
//   return content
// }
